#pragma once

#include "20News.Data.h"

namespace twenty_news_group
{
	class CEnvVar
	{
	public:
		CVocabulary Vocabulary;
		string strFN_Vocabulary;
	public:
		CSimpleTypeArray<double> IDF_List;
	public:
		string strFN_Data_Train;
		string strFN_Data_Test;
		string strFN_Label_Train;
		string strFN_Label_Test;
	public:
		CTargetBinaryLabelSets TargetBinaryLabelSets_Train;
		CTargetBinaryLabelSets TargetBinaryLabelSets_Test;
		string strFN_LabelSettings_Train;
		string strFN_LabelSettings_Test;
	public:
		int Feature_DF_Threshold;
	public:
		CSelectedVocabulary SelectedVocabulary_1;
		string strFN_SelectedVocabulary_1;
		string strFN_SVM_TrainLog_1;
		string strFN_SVM_Model_1;
		string strFN_SVM_ROC_1;
	public:
		double SampleRate_1stRound_Pos_Train;
		double SampleRate_1stRound_Neg_Train;
	public:
		CSelectedVocabulary SelectedVocabulary_2;
		string strFN_SelectedVocabulary_2;
		string strFN_SVM_TrainLog_2;
		string strFN_SVM_Model_2;
		string strFN_SVM_ROC_2;
	public:
		string strFN_ScoreList_Train;
		double HardDataRatio;
		double SampleRate_EasyExample;
		double SampleRate_HardExample;
	public:
		int KNN_MemoryCacheSize_InMB;
	public:
		string strFN_IDF_Train_1;
		int KNN_K_1;
		string strFN_KNN_Model_1;
		string strFN_KNN_Data_1;
		string strFN_KNN_ROC_1;
	public:
		string strFN_IDF_Train_2;
		int KNN_K_2;
		string strFN_KNN_Model_2;
		string strFN_KNN_Data_2;
		string strFN_KNN_ROC_2;

	public:
		const char* GetText_ImageSet(int sgnImageSet) const;
		const char* GetText_PosNeg(int sgnPosNeg) const;
	};

	extern CEnvVar EnvVar;
};

